package com.howso.cloud.changan.user.repository;

import com.howso.cloud.changan.user.entity.ChanganRole;
import com.howso.cloud.changan.user.entity.ChanganUser;
import com.howso.cloud.ddd.repository.BaseRepository;

import java.util.List;
import java.util.Map;
import java.util.Set;

public interface ChanganUserRepository extends BaseRepository<ChanganUser> {

	/**
	 * 根据用户名查询用户
	 * @param username
	 * @return
	 */
	ChanganUser selectByUsername(String username);
	/**
	 * 根据手机号查询用户
	 * @param mobile
	 * @return
	 */
	ChanganUser selectByMobile(String mobile);
	/**
	 * 根据openId查询用户
	 * @param openId
	 * @return
	 */
	ChanganUser selectByOpenId(String openId);

	/**
	 * 用户分配角色
	 * @param id
	 * @param roleIds
	 */
	void setRoleToUser(Long id, Set<Long> roleIds);

	/**
	 * 更新密码
	 * @param id
	 * @param oldPassword
	 * @param newPassword
	 * @return
	 */
	ChanganUser updatePassword(Long id, String oldPassword, String newPassword);


	/**
	 * 用户角色列表
	 * @param userId
	 * @return
	 */
	List<ChanganRole> findRolesByUserId(Long userId);

	/**
	 * 状态变更
	 * @param params
	 * @return
	 */
	Boolean updateEnabled(Map<String, Object> params);



	Boolean saveOrUpdateUser(ChanganUser user) throws Exception;

	/**
	 * 删除用户
	 */
	boolean delUser(Long id);
}
